/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucue.ptc.rest;

import edu.ucue.ptc.gco.mdl.Cliente;
import edu.ucue.ptc.gco.mdl.DetallePedido;
import edu.ucue.ptc.gco.mdl.Direccion;
import edu.ucue.ptc.gco.mdl.Empleado;
import edu.ucue.ptc.gco.ngc.DetallePedidoManagerLocal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.PathParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;

/**
 * REST Web Service
 *
 * @author wilo
 */
//@Path("producto/{nombre}/{clave}/{producto}/{callback}")
//idCliente/idDireccion/FechaEntrega/iva/subtotal/total/user/password
@Path("Pedido/{idCliente}/{idEmpleado}/{idDireccion}/{FechaEntrega}/{iva}/{subtotal}/{total}/{estado}/{user}/{password}/{callback}")
@RequestScoped
public class PedidoResource {

    @Context
    private UriInfo context;

    @Inject
    private Cliente cliente;
    
    @Inject
    private Direccion direccion;
    
    @Inject
    private DetallePedidoManagerLocal DetallePedidoManager;
    
    List<DetallePedido> detallePediddoP55;
    /**
     * Creates a new instance of PedidoResource
     */
    public PedidoResource() {
    }

    /**
     * Retrieves representation of an instance of edu.ucue.ptc.rest.PedidoResource
     * @return an instance of java.lang.String
     */
    @GET
    @Produces("application/json")
    @Named
    //{idCliente}/{idEmpleado}/{idDireccion}/{FechaEntrega}/{iva}/{subtotal}/{total}/{user}/{password}/{callback}")
    public String getJson( @PathParam("idCliente") String idCliente,@PathParam("idEmpleado") String idEmpleado,@PathParam("idDireccion") String idDireccion,
    @PathParam("FechaEntrega") String FechaEntrega,@PathParam("iva") String iva,
    @PathParam("subtotal") String subtotal,@PathParam("total") String total,@PathParam("estado") String estado,
    @PathParam("user") String user,@PathParam("password") String password,@PathParam("callback") String callback) 
    {        
    //http://localhost:49984/gestionpedidosee-web/webresources/idCliente/idDireccion/FechaEntrega/iva/subtotal/total/user/password
        
        direccion.setIdDireccion(Integer.parseInt(idDireccion));
        ins.pedidoVenta2.setDireccion(direccion);
        ins.pedidoVenta2.setEstado(0);
        
        ins.pedidoVenta2.setIva(Double.parseDouble(iva));
        ins.pedidoVenta2.setSubtotal(Double.parseDouble(subtotal));
        ins.pedidoVenta2.setTotal(Double.parseDouble(total));
        cliente.setIdPersona(Integer.parseInt(idCliente));
        ins.pedidoVenta2.setCliente(cliente);
        
        Empleado empleado=new Empleado();
        empleado.setIdPersona(Integer.parseInt(idEmpleado));
        ins.pedidoVenta2.setEmpleado(empleado);
        DetallePedido newD=new DetallePedido();
        newD.setIva(true);
        newD.setTotal(100);
        
        List<DetallePedido> listarTodosDetallePedidos = DetallePedidoManager.listarTodosDetallePedidos();
        String[] split = FechaEntrega.split("-");
        
        String fechaP=split[2]+"/"+split[1]+"/"+split[0];
        
        SimpleDateFormat formatoDeFecha = new SimpleDateFormat("dd/MM/yyyy");
        //System.out.println(formatoDeFecha.format(fechaP));
        try {
            ins.pedidoVenta2.setFechaEntrega(formatoDeFecha.parse(fechaP));
        } catch (ParseException ex) {
            Logger.getLogger(DetallePedidoResource.class.getName()).log(Level.SEVERE, null, ex);
        }
        Calendar calendario = GregorianCalendar.getInstance();
        ins.pedidoVenta2.setFechaIngreso(calendario.getTime());
	
        if(listarTodosDetallePedidos.size()!=0)
        {
            for(int i=1; i<listarTodosDetallePedidos.size(); i++)
            {
                listarTodosDetallePedidos.remove(i);
            }
        }
        ins.pedidoVenta2.setDetalle(listarTodosDetallePedidos);
        
        //boolean add = detallePediddoP.add(newD);
        //ins.pedidoVenta2.setDetalle(detallePediddoP);
        
        //List<DetallePedido> detallePediddoP3;
        
        //boolean add1 = detallePediddoP3.add(newD);
        
        //ArrayList<DetallePedido> detallePediddoP5 = null;
        //detallePediddoP5.add(newD);
        /*cliente.setIdPersona(Integer.parseInt(idCliente));
        //PedidoD. 
          //      .cliente=cliente;
        
        direccion.setIdDireccion(Integer.parseInt(idDireccion));
        PedidoD.class. .pedido.setDireccion(direccion);
        PedidoD.pedido.setEstado(0);

        SimpleDateFormat formatoDeFecha = new SimpleDateFormat("dd/MM/yyyy");
        System.out.println(formatoDeFecha.format(FechaEntrega));
        try {
            PedidoD.pedido.setFechaEntrega(formatoDeFecha.parse(FechaEntrega));
        } catch (ParseException ex) {
            Logger.getLogger(DetallePedidoResource.class.getName()).log(Level.SEVERE, null, ex);
        }
        Calendar calendario = GregorianCalendar.getInstance();
        PedidoD.pedido.setFechaIngreso(calendario.getTime());
	
        PedidoD.pedido.setIva(Double.parseDouble(iva));
        PedidoD.pedido.setSubtotal(Double.parseDouble(subtotal));
        PedidoD.pedido.setTotal(Double.parseDouble(total));
        */
        //return "Respuesta";
        return callback+"({\"callback\":\""+callback+"\",\"respuesta\":\""+"Respuesta"+"\"})";
    }

    /**
     * PUT method for updating or creating an instance of PedidoResource
     * @param content representation for the resource
     * @return an HTTP response with content of the updated or created resource.
     */
    @PUT
    @Consumes("application/json")
    public void putJson(String content) {
    }
}
